package final2107.day11;

import java.io.*;
import java.util.HashMap;
import java.util.Map;

public class Demo01 {
    public static void main(String[] args) throws IOException {
        //1.读取文件中的内容，并打印到控制台
//        BufferedReader br = new BufferedReader(
//                new InputStreamReader(
//                        new FileInputStream("count源文件.txt")));
//        String line = null;
//        while ((line=br.readLine())!=null){
//            System.out.println(line);
//        }
//        br.close();

        //2.统计编码的个数及每个编码出现的次数
        InputStreamReader isr = new InputStreamReader(
                new FileInputStream("count源文件.txt"));
        StringBuilder builder = new StringBuilder();
        Map<String,Integer> map = new HashMap<>();

        //一次读取一个字符，对字符进行判断
        int ch=-1;
        while ((ch=isr.read())!=-1){
            if (ch==','){  //编码结束
                String code = builder.toString();
                //判断是否存在于map中
                if (map.containsKey(code)){
                    map.put(code,map.get(code)+1);
                }else {  //说明编码第一次出现
                    map.put(code,1);
                }
                //清空StringBuilder，以实现复用
                builder.delete(0,builder.length());
            }else {
                builder.append((char)ch);
            }
        }

        //3.将结果写入文件
        PrintWriter pw = new PrintWriter(
                new FileOutputStream("result.txt"),true);

        String count= "编码的个数是："+map.size();
        System.out.println(count);
        pw.println(count);
        for (Map.Entry<String,Integer> entry:map.entrySet()) {
            String str =entry.getKey()+"出现的次数是："+entry.getValue();
            System.out.println(str);
            pw.println(str);
        }

        isr.close();
        pw.close();


    }
}
